| 概要 | |
|---|---|
|
ファイル: \examples\Processing\ObjectFeatures\PrintInspection\PrintInspection_Blob.vad |
|
|
デフォルトプラットフォーム: imaFlex CXP-12 Quad |
|
|
簡単な説明 ブロブベースの位置補正と欠陥検出 |
|
デザイン「PrintInspection_Blob.vad」では、オブジェクトの位置および向きの補正と、その後の画像内の欠陥検出が実行されます。 このサンプルは、テンプレートとして使用できる少なくとも2つの印字を持つオブジェクトに適しています。特別な印字はオブジェクト上に1回だけ出現する必要があります。 サンプル画像「TestImage.tif」では、文字「K」と「g」がサイズ29x38ピクセルのテンプレート1および2として選択されています。 デザインのトップレイヤーにあるコメントボックスには、デザインをサンプル画像に適合させるための個別のステップが記述されています。 デザイン内では、オブジェクト上の2つのテンプレートのブロブ検出ベースの認識を使用して、オブジェクトの位置と向きが決定されます。2つのテンプレートの座標から、オブジェクトの重心が計算されます。 テンプレート1と2の相対位置から、オブジェクトの回転角Phiが計算されます。 これらの情報を使用して、の下で説明されている幾何学的変換が実行されます。この変換の実装は、の下で説明されているデザインサンプル「Geometric Transformation_ImageMoments.va」と同等です。 位置と向きが補正されたオブジェクト上の欠陥は、オブジェクトの「ゴールデンマスター」テンプレートを、計算された補正済みオブジェクトから減算することによって検出されます。 残ったものが潜在的な欠陥となります。ブロブ検出を介してこれらの欠陥の位置が特定され、位置と向きが補正されたオブジェクトの画像に添付されます。 ユーザーは、欠陥のある画像を転送するか、位置が補正されたオブジェクトと添付された欠陥位置を含む画像をPCに転送するかを選択できます。 以下では、基本設計構造と各モジュールの機能について説明します。図380に基本設計構造を示します。
HierarchicalBox FindPatterns(図381参照)では、取得した画像(ボックスImageAcquisitionから)がHierarchicalBox Binarization内で単純な閾値を使用して二値化されます。サンプル画像を変更する場合は、この閾値を画像に合わせて調整してください。 HierarchicalBox BlobDetectionでは、二値化された画像内のオブジェクトがオペレーターBlob_Analysis_2Dによって検出されます。このオペレーターの出力は、見つかった各オブジェクトを囲むバウンディングボックスのxおよびy座標と面積です。 デザイン内のコメントボックスには、これらのパラメータに関する詳細情報が記載されています。 その後、見つかったオブジェクトは、ボックスBlobSelectionでサイズと位置に関して選択されます。 テンプレートに関連するオブジェクトの座標とサイズ情報のみが残ります。 オブジェクトの有効なサイズと位置に関するパラメータIS_InRangeをテンプレートに合わせて調整してください(ボックスFindPatterns上で右クリック)。座標とサイズ情報は、HierarchicalBox ExtractCandidatesへの入力となります。その内容は図382を参照してください。
ここでは、各オブジェクト(ブロブ解析で検出)が、オペレーターImageBufferMultiROIDyn_CutROIsを使用して関心領域(ROI)として元の画像から切り出され、シングルフレームとして転送されます。 HierarchicalBox DeterminingCOGTemplates(図383参照)では、テンプレートマッチングと、それに続く画像内での座標の特定が実行されます。
ボックスTemplateMatching(図384の内容を参照)では、選択されたオブジェクトとテンプレート1および2(サイズ29x38ピクセルの文字「K」および「g」)のマッチングが実行されます。 Templatesでは、テンプレート1と2が16ビット値(各テンプレートに8ビット)としてルックアップテーブルLUT_Valuesに書き込まれます。 画像で見つかったオブジェクトとテンプレート1および2のマッチングは、ボックスMatch内で単純な3x3カーネル減算として実行されます。 TemplateMatchでは、最良のマッチングが得られるカーネルコンポーネントが選択されます。 DeterminingCOGTemplatesの内容に戻り、最適なテンプレートマッチがオペレーターRowMin_Template1およびRowMin_Template2で選択され、テンプレート1と2の対応する座標がレジスタRegister_COG_Template1、Register_COG_Template2およびボックスSelectLastPixelでの最後のピクセルの選択によって決定されます。 ボックスDeterminingCOGTemplatesの出力は、テンプレート1と2の座標です。
基本設計構造に戻り、今度はHierarchicalBox COG_Angleを見ていきます。ここでは、テンプレート1と2の座標から、オブジェクトの重心の座標と回転角が決定されます。 COG_Angleの内容は図385を参照してください。
回転角
のオブジェクトがボックス内で計算されます
RotationAngle に従って、
ここで、
は、テンプレート 1 と 2 の座標の x 方向および y 方向の差です。
オブジェクトの重心の座標
は、次式に従って計算されます
ここで、
は、オブジェクトの重心、テンプレート 1、およびテンプレート 2 の間の角度であり、
は、オブジェクトが回転していないときのテンプレート 2、テンプレート 1、および水平線の間の角度であり、
は、オブジェクトの重心とテンプレート 1 の間の距離です。サンプル画像を変更する場合、ボックスを右クリックしてこれらの値を調整する必要があります。 COG_Angle "Properties" 内。
に関するこの情報を使用して、
,
幾何学的変換がボックスで実行されます GeometricTransformation" (図の基本設計構造を参照 380)。セクションで説明されている VA サンプル "GeometricTransformation_ImageMoments.va" と同等です .
ボックス GeometricTransformation の出力である位置および向きが補正された画像内の可能な欠陥は、ボックス FindDefects で見つかります。ここでは、画像の「ゴールデンマスター」テンプレートが処理済み画像から減算されます。残留物(幾何学的変換後のバイリニア補間による結果)の除去後、ボックス FindDefects の出力は、オブジェクト上で見つかった純粋な欠陥となります。ボックス FindDefectPosition において、オペレーター Blob_Analysis_2D を使用したブロブ解析によって、これらの欠陥の座標が特定されます。ボックス AppendDefectPositionsToImage で、これらの座標が位置および向きが補正された画像に追加されます。ユーザーは、オペレーター SourceSelector のパラメータ "SelectSource" を 0 または 1 に設定することで、純粋な欠陥のある画像を送信するか、欠陥座標付きの補正済み画像を DMA 経由で PC に送信するかを選択できます。



前へ

